1. Technical Field
Embodiments of the present invention relate generally to a method of programming a semiconductor memory device.
2. Related Art
Semiconductor memories operate as reservoirs for storing data therein, from which data are retrieved at need. Semiconductor memories are generally classified into random access memories (RAM) and read-only memories (ROM). RAMS do not retain their data when power supply is suspended, which are referred to as volatile memories. On the other hand, memories where data once stored in ROMs are maintained therein without being lost even if power supply is not supplied are referred to as nonvolatile memories.
Multi-level cells (MLC) programmable to a plurality of threshold voltage levels have been proposed for the purpose of enhancing the integration density of semiconductor memory device. In comparison, a memory cell just programmable to a single threshold voltage level is referred to as single level cell (SLC).
As threshold voltage levels in an MLC increase in number, the data storage capacity in the semiconductor memory device is extended. However, even if plural memory cells are to be programmed with a specific threshold voltage level, threshold voltages of the memory cells may be distributed over a range of threshold voltages. In addition, with an increase of the integration density, adjacent ranges of threshold voltages are becoming closer to each other in an MLC semiconductor memory device.
There are being caused inadvertent variations of threshold voltages in such MLCs, while programming, due to capacitive coupling effects with adjacent memory cells in the semiconductor memory device. Various technologies have been proposed to address these concerns.